home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-09-12 | 6.4 KB | 250 lines | [TEXT/ttxt] |
- Partial incomplete Doc for MCL graphics in ACL/PC
- Code written by Stefan Bamberger and Karsten Poeck
- Original MCL code written by Stefan Bamberger, Ute Gappa, Klaus Goos, Karsten Poeck and others
- Comments to
-
- ------------------------------------------------------
- | Karsten A. Poeck
- | Lehrstuhl fuer Informatik VI
- | Universitaet Wuerzburg
- | Allesgrundweg 12
- | 97218 Gerbrunn
- | Germany
- |
- | E-mail: poeck@informatik.uni-wuerzburg.de
- | Tel. ++ 49 931 70561 18
- | Fax ++ 49 931 70561 20
- ------------------------------------------------------
-
-
- Introduction: In MCL windows, dialog-items, menus and menu-items
- are clos objects that can be created with calls to make-instance.
- All interface stuff is done with generic methods that one
- can shadow, and specialize.
-
- This is not the case in ACL/PC. Make-instance cannot be called
- directly, the interface stuff are functions, not everything can be shadowed
- and menu-items are structures, some initargs cannot be specified as :default-initargs
- (flames to procyon)
-
- To allow portabel code we introduced an layer on top of ACL/PC
- Common Graphics that is totally object oriented and has the interface methods
- of MCL. Since we have not been able to solve the make-instance problem we introduced
- five auxuliaray methods (The names are all in German)
-
- m->a=erzeuge-dialog-item (class &rest args)
- creates a dialog-item (widget in Common Graphics)
-
- m->a=erzeuge-fenster (class &rest args)
- creates a non modal window
-
- m->a=erzeuge-modal-fenster
- creates a window to be used as a modal-dialog
-
- m->a=erzeuge-menu
- creates a menu (Warning the menubar in ACL/PC is a strange thing documented very unclearly)
-
- m->a=erzeuge-menu-item
- to create an menu-item (Warning, the menu-items in ACL/PC are structures. To allow generic functions
- we create dummy clos-objects and link them to the structures. The interface methods called
- on the clos-objects then call the functions of the structures
-
- On the macintosh all these methods should be defined as
- defun m->a=erzeuge-menu (klasse &rest args)
- (apply #'make-instance klasse args))
-
- (defun m->a=erzeuge-menu-item (klasse &rest args)
- (apply #'make-instance klasse args))
-
- (defun m->a=erzeuge-fenster (klasse &rest args)
- (apply #'make-instance klasse args))
-
- (defun m->a=erzeuge-modal-fenster (klasse &rest args)
- (apply #'make-instance klasse args))
-
- (defun m->a=erzeuge-dialog-item (klasse &rest args)
- (apply #'make-instance klasse args))
-
-
- We ported our library of windows, dialog-items, menus and menu-items so the names are subclasses
- of the MCL-ones.
- !Warning, all this is port on demand, we have omitted a lot of features!
- Essentially we provide:
-
- dialog-items;;;;;;;;;;;;;: in the file dos-at
- mac-dialog-item-mixin understands
- :view-size
- :view-position
- :view-font ;warning, the font format in ACL/PC is different
- :view-nick-name
- :view-container
- :dialog-item-enabled-p
-
-
- Emulated methods for dialog-items
- set-view-container
- ;When set-view-container is called and the dialog-item does not have a size
- ;a default size is computed depending on the dialog-item-text
-
- dialog-item-enable
- dialog-item-enabled-p
- dialog-item-disable
- set-view-position
- view-size
- set-view-size
- view-position
- set-dialog-item-text
- dialog-item-text
- view-container
- special dialog items
- *B-STATIC-TEXT-DIALOG-ITEM*
- :dialog-item-text
-
- *b-zahl* (additional widget to represent numbers)
- :f-nach-taste (function-called-after-a-key-is-pressed)
-
- *b-text* (additional widget to represent text, aka editable-text-dialog-item )
- :f-nach-taste
-
- *b-radio-button-dialog-item*
- :dialog-item-text
- :radio-button-cluster
- :dialog-item-action
- :radio-button-pushed-p
-
- Methods:
- radio-button-push
- radio-button-unpush
- radio-button-pushed-p
-
- *b-check-box-dialog-item*
- :view-nick-name
- :dialog-item-text
- :dialog-item-action
- :check-box-checked-p
-
- Methods:
- check-box-check
- check-box-uncheck
- check-box-checked-p
-
- *b-button-dialog-item*
- :dialog-item-text
- :dialog-item-action
-
- *b-ok-button*
-
- *b-abbrechen-button* (A cancel button)
-
- *bb-sequence-dialog-item*
- :range the elements
- :text-des-tabellenelements (A function to give the string of the elements
- :f-pop-up-menu A function returning a pop-up
-
- Methods
- set-table-sequence
- table-sequence
-
- More advanced dialog-items
- *b-auswahl-light*
- A composed dialog-items that consists of several radio-buttons or check-buttons
- aka (accept 'member or 'subset in CLIM)
-
- :wert initial value
- :f-Text
- :Anordnung-Auswahlelemente (orientation, not implemented yet)
- :selektionstyp (selectiontype :multiple or :single)
- :f-bei-Wertaenderung (Function called when the value is changed)
-
- *b-bild-view* A widget for bmp-pictures with sensitive areas
- *b-bild&text-dialog-item* A widget for bmp-pictures with sensitive areas and correspond texts
-
- Shows how to create custom gadgets in ACL/PC (using widget-device)
- A Problem is that the events get called on the pane and not on the widget
- ;;;;;
- What we still can'T do
- use view-draw-contens and view-click-event-handler for widgets
-
- Windows;;;;
-
- *b-window*
- provides view-draw-contens and view-click-event-handler and most of the mac-methods
- Modal-dialog and return-from-modal-dialog also
-
- :view-size
- :view-position
- :view-font ;warning, the font format in ACL/PC is different
- :view-nick-name ;bug
- :view-container ;bug
- :window-title
-
- Methods:
- add-subviews
- remove-subviews
- set-window-title
- window-title
- window-hide
- window-select
- window-show
- window-close
- view-container
- set-view-container
- set-view-font
- view-font
- set-view-position
- view-size
- set-view-size
- view-position
- subviews
- modal-dialog
-
- *b-fenster+scroller*
- A window with a *bb-sequence-dialog-item* that adjust its size to the window
-
- *b-button-window*
- :buttons A window with a bottom button line
-
- *b-graphics-window*
- A window with a scrollable sub-window (aka ccl::scroller-view) and the bottom button line
-
- *b-hierarchie-window-light* A portable class browser
-
- *b-konfigurierungsdialog*
- A configuration dialog, long doc in german, examples in beispiel.lsp, code in b-konfig
-
-
- ;menus and menu-items
- *b-menu* (with b=pop-up-menue-aufklappen used as a pop-window)
- :menu-title
-
- Methods:
- menu-update
- add-menu-items
- remove-menu-items
- menu-installed-p
- menu-deinstall
- menu-install
- menu-enable
- menu-disable
-
- set-menubar
- menubar
-
- *windows-menu* Shows all active windows
-
- *b-menu-item*
- :menu-item-title
- :menu-item-value
- :menu-item-action
- :disabled
- :command-key
-
- Methods:
- menu-item-update
- menu-item-enable
- menu-item-disable
- set-menu-item-title-portable
- set-menu-item-check-mark
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- The load-file for all the stuff is in bib-lade.lisp. good luck
-